package com.wyy.mall.tiny.dto;

import lombok.Getter;

/**
 * 消息队列枚举配置 用于延迟消息队列及处理取消订单消息队列的常量定义，包括交换机名称、队列名称、路由键名称。
 * created by 伍猷煜 on 2021/5/25 13:12 星期二
 * 模型：【生产者 产生订单】 => 【交换器1 |mall.order.direct.ttl|】 => 【队列1 |mall.order.cancel.ttl|超时未支付】 =>
 *     【交换器2 |mall.order.direct|】 => 【队列2 |mall.order.cancel|】 => 【消费者 取消订单】
 */
@Getter
public enum QueueEnum {
    /**
     * 消息通知队列
     */
    QUEUE_ORDER_CANCEL("mall.order.direct", "mall.order.cancel", "mall.order.cancel"),

    /**
     * 消息通知ttl队列
     */
    QUEUE_TTL_ORDER_CANCEL("mall.order.direct.ttl", "mall.order.cancel.ttl", "mall.order.cancel.ttl"),
    ;

    /**
     * 交换器名称
     */
    private String exchange;

    /**
     * 队列名称
     */
    private String queueName;

    /**
     * 路由键
     */
    private String routeKey;

    QueueEnum(String exchange, String queueName, String routeKey) {
        this.exchange = exchange;
        this.queueName = queueName;
        this.routeKey = routeKey;
    }

}
